package cn.com.surker.production.dao;

import cn.com.surker.production.entity.InvoiceHandle;
import cn.com.surker.production.entity.vo.InvoiceHandleDetail;
import cn.com.surker.production.entity.vo.InvoiceScrapReport;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 生产退转料处理表 Mapper 接口
 * </p>
 *
 * @author admin
 * @since 2024-09-26
 */
public interface InvoiceHandleDao extends BaseMapper<InvoiceHandle> {

	/**
	 * 查询发货单的操作记录
	 *
	 *
	 * @param dbCode
	 * @param orgId
	 * @param invId
	 * @return
	 */
	List<InvoiceHandleDetail> handleList(String dbCode, Long orgId, Long invId);

	/**
	 * 查询操作列表,默认是关联的源发货单
	 *
	 * @param page
	 * @param qw
	 * @param dbCode
	 * @return
	 */
	Page<InvoiceHandleDetail> findSouFullPage(Page<InvoiceHandle> page, @Param(Constants.WRAPPER) QueryWrapper<InvoiceHandle> qw, String dbCode);

	/**
	 * 查询操作记录下的子操作记录
	 *
	 * @param pid
	 * @return
	 */
	List<InvoiceHandleDetail> findByPId(Long pid);

	/**
	 * 退砼数据,分页
	 *
	 * @param objectPage
	 * @param dbCode
	 * @param qw
	 * @return
	 */
	IPage<InvoiceScrapReport> findScrap(Page<Object> objectPage, String dbCode, @Param(Constants.WRAPPER) QueryWrapper<InvoiceScrapReport> qw);

	/**
	 * 退砼列表
	 *
	 * @param dbCode
	 * @param qw
	 * @return
	 */
	List<InvoiceScrapReport> findScrap(String dbCode, @Param(Constants.WRAPPER) QueryWrapper<InvoiceScrapReport> qw);

	/**
	 * 分页查询数据
	 *
	 * @param dbCode
	 * @param page
	 * @param qw
	 * @return
	 */
	IPage<InvoiceHandleDetail> findPage(String dbCode, Page<InvoiceHandle> page, @Param(Constants.WRAPPER) QueryWrapper<InvoiceHandle> qw);
}
